package com.ruoyi.report.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.util.List;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * walmart 请求报告表
 * @TableName walmart_report
 */
@TableName(value ="walmart_report")
@Data
public class WalmartReport extends BaseEntity{
    /**
     * 主键id
     */
    @TableId(value = "report_id")
    private Integer reportId;

    /**
     * 报告类型
     */
    @TableField(value = "auth_id")
    private Long authId;

    /**
     * 报告类型
     */
    @TableField(value = "report_type")
    private Integer reportType;

    /**
     * 要求的日期和时间（报告请求时间）
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "required_date_time")
    private Date requiredDateTime;

    /**
     * 完成日期和时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "completion_date_time")
    private Date completionDateTime;

    /**
     * 请求报告的过滤内容
     */
    @TableField(value = "report_filter")
    private String reportFilter;

    /**
     * 报告请求状态（1：RECEIVED（已接收） 2：INPROGRESS（进行中） 3：REDAY：（就绪） 4： ERROR（错误） ）
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 报告请求id
     */
    @TableField(value = "request_id")
    private String requestId;

    /**
     * 报告请求版本
     */
    @TableField(value = "report_version")
    private String reportVersion;

    /**
     * 报告下载路径过期时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "download_url_expiration_time")
    private Date downloadURLExpirationTime;

    /**
     * 项目请求报告过滤器：publishStatus
     */
    @TableField(exist = false)
    private List<Integer> publishStatus;

    /**
     * 项目请求报告过滤器：Fulfillment type
     */
    @TableField(exist = false)
    private List<Integer> fulfillmentType;

    /**
     * 项目请求报告过滤器：创建开始日期
     */
    @TableField(exist = false)
    private Date createStartDate;

    /**
     * 项目请求报告过滤器：创建结束日期
     */
    @TableField(exist = false)
    private Date createEndDate;

    /**
     * 项目请求报告过滤器：最后更新开始日期
     */
    @TableField(exist = false)
    private Date lastUpdatedStartDate;

    /**
     * 项目请求报告过滤器：最后更新结束日期
     */
    @TableField(exist = false)
    private Date lastUpdatedEndDate;


    @TableField(exist = false)
    private static final long serialVersionUID = 1L;


    @Override
    public String toString() {
        return "WalmartReport{" +
                "reportType='" + reportType + '\'' +
                ", requiredDateTime=" + requiredDateTime +
                ", completionDateTime=" + completionDateTime +
                ", reportFilter='" + reportFilter + '\'' +
                ", status=" + status +
                ", requestId='" + requestId + '\'' +
                ", reportVersion='" + reportVersion + '\'' +
                '}';
    }
}